<?php
/**
 * FireFeed Zend_Db factory concrete implementation
 *
 * Implements the Abstract Factory design pattern
 * 
 * @package    FireFeed
 * @subpackage Model
 */
class Model_ZendDb_Factory extends Model_Factory
{
	public function __construct()
	{
		parent::__construct();
	}
	
	/**
     * Return a concrete implementation for Model_AuthService interface
     * used to perform users management
     * 
     * @return Model_UserService
	 * @see application/models/Model_Factory#getUserService()
	 */
	public function getUserService()
	{   
		return new Model_ZendDb_UserService();
	}
	
	 /**
     * Return a concrete implementation for Model_UserService interface
     * used to perform users authentication
     * 
     * @return Model_AuthService
	 * @see application/models/Model_Factory#getAuthService()
	 */
	public function getAuthService()
	{
        return new Model_ZendDb_AuthService();
	}
	
	/**
     * Return a concrete implementation for Model_FeedService interface
     * used to perform tasks on Feeds
     *  
     * @return Model_FeedService
	 * @see application/models/Model_Factory#getFeedService()
	 */
	public function getFeedService()
	{
		return new Model_ZendDb_FeedService();
	}
	
    /**
     * Return a concrete implementation for Model_CategoryService interface
     * used to perform tasks on Categories
     *  
     * @return Model_CategoryService
     * @see application/models/Model_Factory#getCategoryService()
     */
	public function getCategoryService() 
	{
        return new Model_ZendDb_CategoryService();		
	}
	
	/**
     * Return a concrete implementation for Model_BoxService interface
     * used to perform tasks on Boxes
     *  
     * @return Model_BoxService
	 * @see application/models/Model_Factory#getBoxService()
	 */
	public function getBoxService()
	{
		return new Model_ZendDb_BoxService();
	}
	
   /**
     * Return a concrete implementation for Model_NewsService interface
     * used to perform tasks on News
     *  
     * @return Model_NewsService
     * @see application/models/Model_Factory#getNewsService()
     */
    public function getNewsService()
    {
        return new Model_ZendDb_NewsService();
    }
}